/*
 * @Descripttion: 主入口文件
 * @version: 
 * @Author: 一氧化二氢
 * @Date: 2022-01-01 20:48:06
 * @lastEditorTime: Do no edit
 */
// 导入路径模块
const path = require("path")
const Koa = require('koa')
const KoaBody = require('koa-body')
// 导入静态资源模块
const KoaStatic = require('koa-static')
const parameter = require('koa-parameter')
//导入错误处理模块
const errHandler = require('./errHandler')
// 

// 导入路由
const router =require('../router/index')

const app = new Koa()

// 在所有中间件注册前注册koa-body
app.use(KoaBody({
    multipart:true,//文件上传功能开启
    formidable:{  
        //配置选项不推荐使用相对路径
        //option里的相对路径不是相对当前文件，而是process.cwd(),要使用相对路径可使用"./src/upload"
        uploadDir:path.join(__dirname,"../upload"),//文件上传路径
        keepExtensions:true,//保留文件拓展名
    }
}))
//设置静态资源路径
app.use(KoaStatic(path.join(__dirname,'../upload')))
//在ctx上注册参数校验方法 verifyParams
app.use(parameter(app))
// 注册路由
app.use(router.routes())
//注册支持的请求方法
app.use(router.allowedMethods())

//或者
//app.use(router.routes().allowedMethods)

// 错误处理
app.on('error',errHandler)
// 导出app对象
module.exports = app